#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_NAME 20
#define MAX_SEX 10
#define MAX_TELE 12
#define MAX_ADDR 30
#define DEF_SZ 3 //初始容量上限
#define INC_SZ 2 //单次扩容大小

typedef struct Peoinfo 
{
    char name[MAX_NAME];
    char sex[MAX_SEX];
    int age;
    char tele[MAX_TELE];
    char addr[MAX_ADDR];
} Peoinfo;//定义每个人的数据元素


typedef struct contact 
{
   Peoinfo* data;
   int sz;
   int capacity;
} contact;//定义整个通讯录的数据

void menu ();//菜单
void reset(contact* pc);//初始化结构体
//void Loadcontact(contact* pc);//加载通讯录文件内容
//void check_capacity(contact* pc);//扩容函数
void Savecon(contact* pc);//保存到文件
int Addcontact(contact* pc);//添加函数
int Delcontact(contact* pc);//删除函数
int Searchcontact(contact* pc);//查找函数
int Modifycontact(contact* pc);//修改函数
void Sortcontact
            (
                void* base,
                unsigned int size,
                unsigned int width,
                int (*cmp) (const void* e1,const void* e2)
            );//排序函数
int sortby_name(const void*e1 , const void* e2);//名字排序
int sortby_age(const void*e1 , const void* e2);//年龄排序
void Printcontact(contact* pc);//打印函数
void DestCon(contact* pc);//销毁函数
